﻿/*
 作者：唐君军
 时间：2016年10月8日
 备注：涉及到openfire客户端返回响应数据时，都是调用HostData接口，第一个形参作为判断响应消息的类型。
 如：ResponseType为UserOnline表示返回的是在线用户信息，AutoSend则表示返回的是投票信息。
 */


//时间戳
function getNowFormatDate() {
    return new Date().getTime();
}


//用户登陆
function UserLogin(userName, nickName) {
    var RequestUrl = "http://cmd.com/LogIn?" + userName + "&" + "nickName";
    window.open(RequestUrl);
}
//用户退出 
function LogOut() {
    window.open("http://cmd.com/LogOut");
}
//获取在线用户 
function GetOnlineUser() {
    window.open("http://cmd.com/GetOnlineUser");
}

//显示左侧面板
function ShowToolBar() {
    window.open("http://cmd.com/ShowToolBar");
}

//隐藏程序面板
function HideWin() {
    window.open("http://cmd.com/HideWin");
}

//退出程序
function QuitApp() {
    window.open("http://cmd.com/QuitApp");
}

//启动PPT控制程序打开PPT文件
//fileUrl文件绝对路径
function OpenPpt(fileUrl) {
    window.open("http://cmd.com/OpenPpt?" + fileUrl);
}

//向指定用户发送消息
//消息类型
//接收账号
//消息内容（地址）
function SendMsg(Type, SendTo, SendMsg) {//Tyoe:消息类型OpenWeb=>打开网页  SendTo:发送到学生的ID  SendMsg:打开网页地址
    if (Type == "OpenWeb") {
        Type = "PushStudent";
    }
    var time = getNowFormatDate();
    // PushStudent
    var ResqustContent = "<CMD Name=\"" + Type + "\" Param=\"" + SendMsg + "\"/>";
    window.open("http://cmd.com/SendMsg?" + SendTo + "&" + ResqustContent);
}


//openfire客户端消息弹出
function PopMsg(Message) {
    window.open("http://cmd.com/PopMsg?" + Message);
}
//用户发起投票
//VoteID为用户指定一个唯一性的投票Id
//UserName参数表示在centor服务端接收到消息后转发给某个用户的账号,即投票结果发给哪个用户。
function UserVote(VoteID, UserName) {
    //教师端向发起Centor注册投票
    var register = "<CMD Name=\"QueryVote\" VoteID=\"" + VoteID + "\" Type=\"Total\"/>";//
    window.open("http://cmd.com/SendMsg?centor&" + register)//向Centor账号发起.注册统计账号.

    //教师端命令Centor接收到投票信息转发给指定用户。
    var begin = "<CMD Name=\"AutoSend\" VoteID=\"" + VoteID + "\" AutoSendID=\"" + UserName + "\"/>";//指定centor服务端接收到消息后转发给UserName用户。
    window.open("http://cmd.com/SendMsg?centor&" + begin);
}
function RemoveVote(VoteID) {
    var register = "<CMD Name=\"RemoveVote\" VoteID=\"" + VoteID + "\"/>";//
    window.open("http://cmd.com/SendMsg?centor&" + register)//向Centor账号发起删除指定投票
}

//学生端提交
function ReferringProblem(VoteID, StuID) {
    var begin = "<CMD Name=\"Vote\" VoteID=\"" + VoteID + "\" StuID=\"" + StuID + "\" StuName=\"" + StuID + "\"/>";
    window.open("http://cmd.com/SendMsg?centor&" + begin);
}

//学生投票
function StudentVote(VoteID, UserCode) {
    var _Param = "<CMD Name=\"Vote\" VoteID=\"" + VoteID + "\" StuID=\"" + UserCode + "\" StuName=\"" + UserCode + "\"/>";
    window.open("http://cmd.com/SendMsg?centor&" + _Param);
}

var UserCode = [];//当前选择班级下的所有学生.
var OnLineStudent = [];//当前该班级已在线的学生
var Response = "";//客户端回调时传递的参数。
//openfire回调函数
function HostData(ResponseType, StudentAssemble) {//回调类型 学生ID
    //alert("ResponseType=" + ResponseType + "  StudentAssemble=" + StudentAssemble);
    var ThisName = "" + StudentAssemble + "";
    if (ResponseType == "UserOffline") {
        OnLineStudent.splice(OnLineStudent.indexOf(ThisName), 1);
    }
    else if (ResponseType == "UserOnline") {
        if (UserCode.indexOf(ThisName) >= 0) {
            if (OnLineStudent.indexOf(ThisName) < 0) {
                OnLineStudent.push(ThisName)
            }
        }
    }

    else if (ResponseType == "GetOnlineUser") {
        // if (Response != StudentAssemble) {
        var StudentArray = StudentAssemble.split(',');

        // return StudentArray;
        $(StudentArray).each(function () {
            var ThisName = "" + this + "";

            if (UserCode.indexOf(ThisName) != -1) {//确认学生在这个班级
                if (OnLineStudent.indexOf(ThisName) < 0) {//未添加当前学生上线状态
                    OnLineStudent.push(ThisName)
                }
            }
        });
        // }
        // if (window.frames[0]) {
        //     window.frames[0].SetOnline(OnLineStudent, UserCode); Response = StudentAssemble;//存储客户端回调参数.
        // }
        // else {
        //     SetOnline(OnLineStudent, UserCode); Response = StudentAssemble;//存储客户端回调参数.
        // }
    }

    else if (ResponseType == "thispage") {
        if (StudentAssemble != "-1") {
            if (parseInt(StudentAssemble) >= 0) {
                if (StudentAssemble == 0) {
                    StudentAssemble = 1;
                }
                if ($.cookie("PPtResourceIndex") == "undefined") {
                    $.cookie('PPtResourceIndex', StudentAssemble, {path: '/'});
                }
                if (parseInt(StudentAssemble) != parseInt($.cookie("PPtResourceIndex"))) {
                    var StudentString = JSON.parse($.cookie("StudentString"));
                    $(StudentString).each(function () {
                        SendMsg("OpenWeb", this.UserCode, $.cookie("StudentPath") + "/PPTEx/Index?ResourceID=" + $.cookie('PPtResourceID') + "&Page=" + StudentAssemble + "&ServerIP=" + $.cookie('ServerIP'));
                    });
                    $.cookie('PPtResourceIndex', StudentAssemble, {path: '/'});
                }
            }
        }
    }
}